www.gusucode.com > 精通MATLAB最优化计算全书代码 程序源码 > 随书源码_精通MATLAB最优化计算/第8章 约束优化问题/minFactor.m
function [x,minf] = minFactor(f,x0,h,v,M,alpha,gama,var,eps) format long; if nargin == 8 eps = 1.0e-4; end FE = 0; for i=1:length(h) FE = h(i)^2; end x1 = transpose(x0); x2 = inf; while 1 FF = M*FE/2; Fh = v*h; SumF = f + FF - Fh; [x2,minf] = minNT(SumF,transpose(x1),var); Hx2 = Funval(h,var,x2); Hx1 = Funval(h,var,x1); if norm(Hx2) < eps x = x2; break; else if Hx2/Hx1 >= gama M = alpha*M; x1 = x2; else v = v - M*transpose(Hx2); x1 = x2; end end end minf = Funval(f,var,x); format short;